
# 从csv、tsv或者txt文件中读取数据自动判断格式
#' Title
#'
#' @param file_path
#'
#' @return
#' @export
#'
#' @examples
my_read_data <- function(file_path) {
  fileType <- sub('.*\\.', '', file_path)
  fileType <- tolower(fileType)
  if(fileType == 'txt' | fileType == 'tsv' | fileType == 'csv'){
    first_line <- readLines(file_path, n = 1)
    # 计算逗号、分号和制表符在第一行中出现的次数
    comma_count <- stringr::str_count(first_line,",")
    semicolon_count <- stringr::str_count(first_line,";")
    tab_count <- stringr::str_count(first_line,"\t")
    # 根据数量确定最可能的分隔符
    if (comma_count >= semicolon_count & comma_count >= tab_count) {
      separator <- ","
    } else if (semicolon_count >= comma_count & semicolon_count >= tab_count) {
      separator <- ";"
    } else {
      separator <- "\t"
    }
    # 使用确定的分隔符读取 CSV 文件
    data <- read.csv(file_path, sep = separator,header=T)
    return(data)
  }else if(fileType == 'xls' | fileType == 'xlsx'){
    data <- readxl::read_excel(file_path, sheet=1)
    return(data)
  }else{
    return(NULL)
  }

}

#' 将数据写入json文件
#'
#' @param json_data
#' @param json_path
#'
#' @return
#' @export
#'
#' @examples
my_write_json_file <- function(json_data, json_path) {
  json_string <- jsonlite::toJSON(json_data, pretty = TRUE,auto_unbox = TRUE)
  writeLines(json_string, json_path)
}
